package com.example;

/**
 * @Author loubobooo
 * @Description #26删除排序数组中的重复项
 * @Date 2019/11/19 9:52
 **/
public class RemoveDuplicateFromSortedArray {

    /**
     * @Author loubobooo
     * @Description 给定一个排序数组，你需要在原地删除重复出现的元素，使得每个元素只出现一次，返回移除后数组的新长度。
     * 不要使用额外的数组空间，你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
     * @Date 2019/11/19 9:53
     * @Param
     * @return
     **/
    public int removeDuplicates(int[] nums) {
        int count = 0;
        if(nums == null || nums.length < 1){
            return count;
        }
        int p = 0;
        int q = 1;
        int length = nums.length;
        while(q < length){
            if(nums[p] == nums[q]){
                count++;
            }else{
                nums[p + 1]= nums[q];
                p++;
            }
            q++;
        }
        return length - count;
    }

    public static void main(String[] args) {
        RemoveDuplicateFromSortedArray removeDuplicateFromSortedArray = new RemoveDuplicateFromSortedArray();
        int[] nums = {1, 1, 2};
        removeDuplicateFromSortedArray.removeDuplicates(nums);
    }

}
